package com.edt.ichannel.api.service;

import com.edt.ichannel.api.entiy.local.Staff;

import java.util.List;


/**
 * Staff服务接口类
 * @author ls
 * @date 2018-06-12
 */
public interface StaffService{
	



    /**
    * 获取单条信息
    *
    * @param id  拓展人 id
    * @return Staff 拓展人实体
    * @author 孙梁
    * @date 2018-06-12
    */
    Staff getStaffById(String id);



    /**
     * 给拓展人账户添加余额
     * @param money, staffId
     *             发展奖，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffAccountMoney(double money, String staffId);

    /**
     * 给拓展人账户减少余额
     * @param money, staffId
     *             减少值，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void minusStaffAccouintMoney(double money, String staffId);


    /**
     * 更新人员佣金总额
     * @param addMoney, staffId
     *             佣金，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffCommissionMoney(double addMoney, String staffId);

    /**
     * 更新人员发展奖总额
     * @param addMoney, staffId
     *             发展奖，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffBonusMoney(double addMoney, String staffId);

    /**
     * 处理拓展人集合
     * 没有添加
     * 有更新
     * @param staffList
     *             拓展人集合
     * @author 孙梁
     * 2018/7/10 16:31
     */
    @Deprecated
    void saveOrUpdateStaffList(List<Staff> staffList);

    /**
     * 批量插入数据到临时表
     * @author 孙梁
     * 2018/7/10 15:39
     */

    void addStaffList(List<Staff> addMechanismsList);

    /**
     * 批量更新数据
     * @author 孙梁
     * 2018/7/10 15:39
     */
    void updatStaffList(List<Staff> updateMechanismsList);

    /**
     * 将小微渠道中组织机构和拓展人组织机构不同的数据的组织结构替换为拓展人组织机构
     * @author 孙梁
     * 2018/7/10 15:30
     */

    void updateExpansionMechanismsIdDifferent();

    /**
     * 将临时表中内容，本地没有的添加到人员表
     * @author 孙梁
     * 2018/7/11 13:37
     */
    void addStaffFromStaffDblink();

    /**
     * 将临时表中内容，本地有的的更新到人员表
     * @author 孙梁
     * 2018/7/11 13:37
     */
    void mergeStaffFromStaffDblink();

    /**
     * 从dblink拿拓展人
     * @return java.util.List<com.edt.ichannel.api.entiy.local.Mechanisms>
     *              读取结果
     * @author 孙梁
     * 2018/7/10 14:43
     */
    List<Staff> selectHrStaffByDBLink();


    /**
     * 更新账户余额
     * @param accountMoney, staffId
     *             新余额,人员id
     * @return void
     *              updateAccountMoney
     * @author 孙梁
     * 2018/7/17 16:38
     */
    void updateAccountMoney(double accountMoney, String staffId);

    /**
     * 同步dblink数据到临时表
     * 2018/10/12 13:17
     */
    void mergeStaffFromDblink();


}
